﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using acessaDB;
using Frame;
using System.Data;
using System.Configuration;
using System.Data.SqlClient;
using Estrutura;


namespace Banco
{

    /// <summary>
    /// Summary description for BD_Aluno_avaliacao
    /// </summary>
    public class BD_Aluno_avaliacao
    {
        #region variaveis_globais

        acessaDB.conectaDBMSSQLServer sqlServer = new conectaDBMSSQLServer();
        string conectionString = System.Configuration.ConfigurationManager.AppSettings["SQLServerConnectionLocal"];
        string usuario = string.Empty;

        #endregion

        #region construtor

        public BD_Aluno_avaliacao()
        {
            if (System.Configuration.ConfigurationManager.AppSettings["ambiente"] == "PROD")
                conectionString = System.Configuration.ConfigurationManager.AppSettings["SQLServerConnectionProd"];
        }
        public BD_Aluno_avaliacao(string usu_Login)
        {
            if (System.Configuration.ConfigurationManager.AppSettings["ambiente"] == "PROD")
                conectionString = System.Configuration.ConfigurationManager.AppSettings["SQLServerConnectionProd"];
            usuario = usu_Login;
        }

        #endregion

        #region metodos

        public System.Data.DataSet _retorna_Aluno_avaliacao(
                                                string ALUNO_AVALIACAO_ID,
                                                string ALUNO_ID,
                                                string AVA_NOTA,
                                                string AVA_DESCRICAO,
                                                string AVA_DATAAVALIACAO,
                                                string AVA_CONCEITO
                                                )
        {

            if (string.IsNullOrEmpty(ALUNO_AVALIACAO_ID)) ALUNO_AVALIACAO_ID = "''";
            if (string.IsNullOrEmpty(ALUNO_ID)) ALUNO_ID = "''";
            if (string.IsNullOrEmpty(AVA_NOTA)) AVA_NOTA = "''";
            if (string.IsNullOrEmpty(AVA_DESCRICAO)) AVA_DESCRICAO = "''";
            if (string.IsNullOrEmpty(AVA_DATAAVALIACAO)) AVA_DATAAVALIACAO = "''";
            if (string.IsNullOrEmpty(AVA_CONCEITO)) AVA_CONCEITO = "''";

            string sql = "SELECT " +
                                  "ALUNO_AVALIACAO.ALUNO_AVALIACAO_ID, " +
                                  "ALUNO_AVALIACAO.ALUNO_ID, " +
                                  "ALUNO_AVALIACAO.AVA_NOTA, " +
                                  "ALUNO_AVALIACAO.AVA_DESCRICAO, " +
                                  "ALUNO_AVALIACAO.AVA_DATAAVALIACAO, " +
                                  "ALUNO_AVALIACAO.AVA_CONCEITO " +
                            "FROM ALUNO_AVALIACAO " +
                            "LEFT JOIN ALUNO ON ALUNO.ALUNO_ID = ALUNO_AVALIACAO.ALUNO_ID " +
                            "WHERE " +
                            "      (ALUNO_AVALIACAO.ALUNO_AVALIACAO_ID = " + ALUNO_AVALIACAO_ID + "  OR " + ALUNO_AVALIACAO_ID + " = '') AND " +
                            "      (ALUNO_AVALIACAO.ALUNO_ID = " + ALUNO_ID + "  OR " + ALUNO_ID + " = '') AND " +
                            "      (ALUNO_AVALIACAO.AVA_NOTA = " + AVA_NOTA + "  OR " + AVA_NOTA + " = '') AND " +
                            "      (ALUNO_AVALIACAO.AVA_DESCRICAO = " + AVA_DESCRICAO + "  OR " + AVA_DESCRICAO + " = '') AND " +
                            "      (ALUNO_AVALIACAO.AVA_DATAAVALIACAO = " + AVA_DATAAVALIACAO + "  OR " + AVA_DATAAVALIACAO + " = '') AND " +
                            "      (ALUNO_AVALIACAO.AVA_CONCEITO = " + AVA_CONCEITO + "  OR " + AVA_CONCEITO + " = '') ";

            return sqlServer.retornaDataSet(sql, conectionString);

        }


        public List<ES_Aluno_avaliacao> _obter_Aluno_avaliacao(
                                                string ALUNO_AVALIACAO_ID,
                                                string ALUNO_ID,
                                                string AVA_NOTA,
                                                string AVA_DESCRICAO,
                                                string AVA_DATAAVALIACAO,
                                                string AVA_CONCEITO
                                                )
        {

            if (string.IsNullOrEmpty(ALUNO_AVALIACAO_ID)) ALUNO_AVALIACAO_ID = "''"; else ALUNO_AVALIACAO_ID = Util.retonarAspas(ALUNO_AVALIACAO_ID + " % ");
            if (string.IsNullOrEmpty(ALUNO_ID)) ALUNO_ID = "''"; else ALUNO_ID = Util.retonarAspas(ALUNO_ID + " % ");
            if (string.IsNullOrEmpty(AVA_NOTA)) AVA_NOTA = "''"; else AVA_NOTA = Util.retonarAspas(AVA_NOTA + " % ");
            if (string.IsNullOrEmpty(AVA_DESCRICAO)) AVA_DESCRICAO = "''"; else AVA_DESCRICAO = Util.retonarAspas(AVA_DESCRICAO + " % ");
            if (string.IsNullOrEmpty(AVA_DATAAVALIACAO)) AVA_DATAAVALIACAO = "''"; else AVA_DATAAVALIACAO = Util.retonarAspas(AVA_DATAAVALIACAO + " % ");
            if (string.IsNullOrEmpty(AVA_CONCEITO)) AVA_CONCEITO = "''"; else AVA_CONCEITO = Util.retonarAspas(AVA_CONCEITO + " % ");

            string sql = "SELECT " +
                                  "ALUNO_AVALIACAO.ALUNO_AVALIACAO_ID, " +
                                  "ALUNO_AVALIACAO.ALUNO_ID, " +
                                  "ALUNO_AVALIACAO.AVA_NOTA, " +
                                  "ALUNO_AVALIACAO.AVA_DESCRICAO, " +
                                  "ALUNO_AVALIACAO.AVA_DATAAVALIACAO, " +
                                  "ALUNO_AVALIACAO.AVA_CONCEITO " +
                            "FROM ALUNO_AVALIACAO " +
                            "LEFT JOIN ALUNO ON ALUNO.ALUNO_ID = ALUNO_AVALIACAO.ALUNO_ID " +
                            "WHERE " +
                            "      (ALUNO_AVALIACAO.ALUNO_AVALIACAO_ID = " + ALUNO_AVALIACAO_ID + "  OR " + ALUNO_AVALIACAO_ID + " = '') AND " +
                            "      (ALUNO_AVALIACAO.ALUNO_ID = " + ALUNO_ID + "  OR " + ALUNO_ID + " = '') AND " +
                            "      (ALUNO_AVALIACAO.AVA_NOTA = " + AVA_NOTA + "  OR " + AVA_NOTA + " = '') AND " +
                            "      (ALUNO_AVALIACAO.AVA_DESCRICAO = " + AVA_DESCRICAO + "  OR " + AVA_DESCRICAO + " = '') AND " +
                            "      (ALUNO_AVALIACAO.AVA_DATAAVALIACAO = " + AVA_DATAAVALIACAO + "  OR " + AVA_DATAAVALIACAO + " = '') AND " +
                            "      (ALUNO_AVALIACAO.AVA_CONCEITO = " + AVA_CONCEITO + "  OR " + AVA_CONCEITO + " = '') ";

            List<ES_Aluno_avaliacao> lista = new List<ES_Aluno_avaliacao>();
            SqlConnection sqlConexao = new SqlConnection(conectionString);
            SqlDataReader dr = sqlServer.retornaDataReader(sql, conectionString, sqlConexao);
            try
            {
                while (dr.Read())
                {
                    ES_Aluno_avaliacao item = new ES_Aluno_avaliacao();
                    item.ALUNO_AVALIACAO_ID = dr["ALUNO_AVALIACAO_ID"].ToString();
                    item.ALUNO_ID = dr["ALUNO_ID"].ToString();
                    item.AVA_NOTA = dr["AVA_NOTA"].ToString();
                    item.AVA_DESCRICAO = dr["AVA_DESCRICAO"].ToString();
                    item.AVA_DATAAVALIACAO = dr["AVA_DATAAVALIACAO"].ToString();
                    item.AVA_CONCEITO = dr["AVA_CONCEITO"].ToString();
                    lista.Add(item);

                }
                return lista;
            }
            finally
            {
                sqlServer.fecharConexao(sqlConexao);
            }
        }


        public ES_Aluno_avaliacao _obter_Aluno_avaliacao_by_id(
                                                                string ALUNO_AVALIACAO_ID,
                                                                string ALUNO_ID = "",
                                                                string MATRICULA_ID = ""
                                                              )
        {

            if (string.IsNullOrEmpty(ALUNO_AVALIACAO_ID)) ALUNO_AVALIACAO_ID = "0";
            if (string.IsNullOrEmpty(ALUNO_ID)) ALUNO_ID = "0";
            if (string.IsNullOrEmpty(MATRICULA_ID)) MATRICULA_ID = "0";

            string sql = "SELECT " +
                                  "ALUNO_AVALIACAO.ALUNO_AVALIACAO_ID, " +
                                  "ALUNO_AVALIACAO.ALUNO_ID, " +
                                  "ALUNO_AVALIACAO.AVA_NOTA, " +
                                  "ALUNO_AVALIACAO.AVA_DESCRICAO, " +
                                  "ALUNO_AVALIACAO.AVA_DATAAVALIACAO, " +
                                  "ALUNO_AVALIACAO.AVA_CONCEITO, " +
                                  "ALUNO_AVALIACAO.MATRICULA_ID, " +
                                  "ALUNO_AVALIACAO.AVA_AVALIACAOMATRICULA " +
                            "FROM ALUNO_AVALIACAO " +
                            "LEFT JOIN ALUNO ON ALUNO.ALUNO_ID = ALUNO_AVALIACAO.ALUNO_ID " +
                            "WHERE " +
                            "      (ALUNO_AVALIACAO.ALUNO_AVALIACAO_ID = " + ALUNO_AVALIACAO_ID + "  OR " + ALUNO_AVALIACAO_ID + " = 0) AND" +
                            "      (ALUNO_AVALIACAO.ALUNO_ID = " + ALUNO_ID + "  OR " + ALUNO_ID + " = 0) AND " +
                            "      (ALUNO_AVALIACAO.MATRICULA_ID = " + MATRICULA_ID + "  OR " + MATRICULA_ID + " = 0) ";

            ES_Aluno_avaliacao item = new ES_Aluno_avaliacao();
            SqlConnection sqlConexao = new SqlConnection(conectionString);
            SqlDataReader dr = sqlServer.retornaDataReader(sql, conectionString, sqlConexao);
            try
            {
                while (dr.Read())
                {
                    item.ALUNO_AVALIACAO_ID = dr["ALUNO_AVALIACAO_ID"].ToString();
                    item.ALUNO_ID = dr["ALUNO_ID"].ToString();
                    item.AVA_NOTA = dr["AVA_NOTA"].ToString();
                    item.AVA_DESCRICAO = dr["AVA_DESCRICAO"].ToString();
                    item.AVA_DATAAVALIACAO = dr["AVA_DATAAVALIACAO"].ToString();
                    item.AVA_CONCEITO = dr["AVA_CONCEITO"].ToString();
                    item.MATRICULA_ID = dr["MATRICULA_ID"].ToString();
                    item.AVA_AVALIACAOMATRICULA = dr["AVA_AVALIACAOMATRICULA"].ToString();
                }
                return item;
            }
            finally
            {
                sqlServer.fecharConexao(sqlConexao);
            }
        }


        public void _inserir_Aluno_avaliacao(
                                                string ALUNO_AVALIACAO_ID,
                                                string ALUNO_ID,
                                                string AVA_NOTA,
                                                string AVA_DESCRICAO,
                                                string AVA_DATAAVALIACAO,
                                                string AVA_CONCEITO,
                                                string MATRICULA_ID,
                                                string AVA_AVALIACAOMATRICULA
                                                )
        {

            string sql = " INSERT INTO ALUNO_AVALIACAO " +
                         "      ( " +
                         "          ALUNO_ID, " +
                         "          AVA_NOTA, " +
                         "          AVA_DESCRICAO, " +
                         "          AVA_DATAAVALIACAO, " +
                         "          AVA_CONCEITO,  " +
                         "          MATRICULA_ID,  " +
                         "          AVA_AVALIACAOMATRICULA  " +
                 "      )" +
                 "  VALUES " +
                 "      ( " +
                              Util.retonarNull(ALUNO_ID) + ", " +
                              Util.retonarNull(AVA_NOTA) + ", " +
                              Util.retonarAspas(AVA_DESCRICAO, true) + ", " +
                              Util.retonarAspas(Util.formataData(AVA_DATAAVALIACAO,"dd/MM/yyyy"), true) + ", " +
                              Util.retonarAspas(AVA_CONCEITO, true) + ", " +
                              Util.retonarNull(MATRICULA_ID) + ", " +
                              Util.retonarAspas(AVA_AVALIACAOMATRICULA, true) + 
                 "      )";
            try
            {
                sqlServer._ExecutarComandoRetornandoID(sql, conectionString, false, usuario);
            }
            catch
            { }
        }



        public void _atualizar_Aluno_avaliacao(
                                                string ALUNO_AVALIACAO_ID,
                                                string ALUNO_ID,
                                                string AVA_NOTA,
                                                string AVA_DESCRICAO,
                                                string AVA_DATAAVALIACAO,
                                                string AVA_CONCEITO,
                                                string MATRICULA_ID,
                                                string AVA_AVALIACAOMATRICULA
                                                )
        {

            string sql = " UPDATE ALUNO_AVALIACAO SET " +
                         "      ALUNO_ID = " + Util.retonarNull(ALUNO_ID) + ", " +
                         "      AVA_NOTA = " + Util.retonarNull(AVA_NOTA) + ", " +
                         "      AVA_DESCRICAO = " + Util.retonarAspas(AVA_DESCRICAO, true) + ", " +
                         "      AVA_DATAAVALIACAO = " + Util.retonarAspas(Util.formataData(AVA_DATAAVALIACAO, "dd/MM/yyyy"), true) + ", " +
                         "      AVA_CONCEITO = " + Util.retonarAspas(AVA_CONCEITO, true) + ", " +
                         "      MATRICULA_ID = " + Util.retonarNull(MATRICULA_ID) + ", " +
                         "      AVA_AVALIACAOMATRICULA = " + Util.retonarAspas(AVA_AVALIACAOMATRICULA, true) +
                         " WHERE ALUNO_AVALIACAO_ID =  " + ALUNO_AVALIACAO_ID;
            try
            {
                sqlServer._ExecutarComandoRetornandoID(sql, conectionString, false, usuario);
            }
            catch
            { }
        }



        public void _excluir_Aluno_avaliacao(string ALUNO_AVALIACAO_ID)
        {
            string sql = "DELETE FROM ALUNO_AVALIACAO WHERE ALUNO_AVALIACAO_ID = " + ALUNO_AVALIACAO_ID;
            try
            {
                sqlServer._ExecutarComandoRetornandoID(sql, conectionString, false, usuario);
            }
            catch
            { }
        }



        #endregion
    }
}